[
   Start                                -- _1,
   Identifier                           -- _1,
   ClassName1                           -- _1,
   InterfaceName1                       -- _1,
   Type                                 -- _1 _2,
   Type.2:iter-star                     -- _1,
   SquareBracketsRule                   -- KW["["] KW["]"],
   Parameter                            -- _1 _2 _3,
   Parameter.3:iter-star                -- _1,
   StatementBlock                       -- V  [V vs=2 [KW["{"] _1] KW["}"]],
   StatementBlock.1:iter-star           -- _1,
   Statement1                           -- _1,
   Statement2                           -- _1 _2,
   Statement3                           -- _1,
   Statement6                           -- _1,
   Statement10                          -- KW["synchronized"] KW["("] _1 KW[")"] _2,
   Statement11                          -- KW["return"] _1 _2,
   Statement11.1:opt                    -- _1,
   Statement12                          -- KW["throw"] _1 _2,
   Statement13                          -- _1 KW[":"] _2,
   Statement14                          -- KW["break"] _1 _2,
   Statement14.1:opt                    -- _1,
   Statement15                          -- KW["continue"] _1 _2,
   Statement15.1:opt                    -- _1,
   Statement16                          -- _1,
   VariableDeclaration                  -- _1 _2 _3 _4,
   VariableDeclaration.3:iter-star      -- _1,
   VariableDeclarationRule              -- _1 _2,
   VariableDeclarator                   -- _1 _2 _3,
   VariableDeclarator.2:iter-star       -- _1,
   VariableDeclarator.3:iter-star       -- _1,
   VariableDeclaratorRule               -- KW["="] _1,
   VariableInitializer1                 -- _1,
   VariableInitializer2                 -- KW["{"] _1 KW["}"],
   VariableInitializerRule1             -- _1 _2 _3,
   VariableInitializerRule1.2:iter-star -- _1,
   VariableInitializerRule1.3:opt       -- _1,
   VariableInitializerRule2             -- _1 _2,
   Expression3                          -- _1,
   LogicalExpression1                   -- KW["!"] _1,
   LogicalExpression2                   -- _1 KW["ampersand"] _2,
   LogicalExpression3                   -- _1 KW["ampersand="] _2,
   LogicalExpression4                   -- _1 KW["|"] _2,
   LogicalExpression5                   -- _1 KW["|="] _2,
   LogicalExpression6                   -- _1 KW["^"] _2,
   LogicalExpression7                   -- _1 KW["^="] _2,
   LogicalExpression8                   -- _1 KW["ampersand"] KW["ampersand"] _2,
   LogicalExpression9                   -- _1 KW["||="] _2,
   LogicalExpression10                  -- _1 KW["%"] _2,
   LogicalExpression11                  -- _1 KW["%="] _2,
   LogicalExpression12                  -- _1 KW["?"] _2 KW[":"] _3,
   LogicalExpression13                  -- KW["true"],
   LogicalExpression14                  -- KW["false"],
   Expression4                          -- _1,
   StringExpression1                    -- _1 KW["+"] _2,
   StringExpression2                    -- _1 KW["+="] _2,
   Expression5                          -- _1,
   BitExpression1                       -- KW["~"] _1,
   BitExpression2                       -- _1 KW[">>="] _2,
   BitExpression3                       -- _1 KW["<<"] _2,
   BitExpression4                       -- _1 KW[">>"] _2,
   BitExpression5                       -- _1 KW[">>>"] _2,
   Expression6                          -- _1,
   CastingExpression                    -- KW["("] _1 KW[")"] _2,
   Expression7                          -- _1,
   CreatingExpression1                  -- KW["new"] _1 KW["("] _2 KW[")"],
   CreatingExpression1.2:opt            -- _1,
   ArgList                              -- _1 _2,
   ArgList.2:iter-star                  -- _1,
   MoreExpressionRule                   -- KW[","] _1,
   CreatingExpression2                  -- KW["new"] _1 _2 _3,
   CreatingExpression2.2:opt            -- _1,
   CreatingExpression2.3:iter-star      -- _1,
   CreatingExpressionRule               -- KW["["] _1 KW["]"],
   CreatingExpression3                  -- KW["new"] KW["("] _1 KW[")"],
   Expression8                          -- _1,
   LiteralExpression1                   -- _1,
   IntegerLiteral                       -- _1 _2,
   IntegerLiteral.2:opt                 -- _1,
   IntegerLiteralRule                   -- KW["l"],
   LiteralExpression3                   -- _1,
   String                               -- V  [V vs=2 [KW["''"] _1] KW["''"]],
   String.1:iter-star                   -- _1,
   LiteralExpression4                   -- _1,
   Character                            -- _1,
   WhileStatement                       -- KW["while"] KW["("] _1 KW[")"] _2,
   TypeBoolean                          -- KW["boolean"],
   TypeByte                             -- KW["byte"],
   TypeChar                             -- KW["char"],
   TypeShort                            -- KW["short"],
   TypeFloat                            -- KW["float"],
   TypeLong                             -- KW["long"],
   TypeDouble                           -- KW["double"],
   LogicalTrue                          -- KW["boolean"],
   LogicalFalse                         -- KW["boolean"],
   IntLiteral                           -- KW["int"],
   FloatLiteral                         -- KW["float"],
   StringLiteral                        -- KW["String"],
   Expression13                         -- KW["("] _1 KW[")"],
   Expression14                         -- _1 KW["("] _2 KW[")"],
   Expression14.2:opt                   -- _1,
   Int                                  -- _1,
   Expression15                         -- _1 KW["["] _2 KW["]"],
   Expression16                         -- _1 KW["."] _2,
   Expression17                         -- _1 KW[","] _2,
   Expression18                         -- _1 KW["instanceof"] _2,
   Expression19                         -- _1 KW["instanceof"] _2,
   Expression2                          -- _1,
   Plus                                 -- _1 _2 _3,
   Minus                                -- _1 _2 _3,
   Mult                                 -- _1 _2 _3,
   Div                                  -- _1 _2 _3,
   Mod                                  -- _1 _2 _3,
   INCR                                 -- _1 _2,
   DECR                                 -- _1 _2,
   AssigmentPLUS                        -- _1 _2 _3,
   AssigmentMINUS                       -- _1 _2 _3,
   AssigmentMULTI                       -- _1 _2 _3,
   AssigmentDIV                         -- _1 _2 _3,
   AssigmentMOD                         -- _1 _2 _3,
   TestingExpression                    -- _1,
   MAIORQUE                             -- _1 _2 _3,
   MENORQUE                             -- _1 _2 _3,
   MAIORIGUALQUE                        -- _1 _2 _3,
   MENORIGUALQUE                        -- _1 _2 _3,
   EQUAL                                -- _1 _2 _3,
   DIFF                                 -- _1 _2 _3,
   LiteralExpression2                   -- _1,
   Float                                -- _1,
   ExpNULL                              -- KW["null"],
   ExpSUPER                             -- KW["super"],
   ExpTHIS                              -- KW["this"],
   ExpID                                -- _1,
   And                                  -- _1 _2 _3,
   Or                                   -- _1 _2 _3,
   Not                                  -- _1 _2,
   True                                 -- KW["true"],
   False                                -- KW["false"]
]